/*
 * @Author: HeAo
 * @Date: 2022-08-09 14:35:07
 * @LastEditTime: 2022-08-10 20:22:37
 * @LastEditors: HeAo
 * @Description: hyj
 * @FilePath: \JavaScripe\第三天\02-循环.js
 * 别乱动！
 */
// 1、普通for
var arr = [1, 2, 3, 4]
for (var i = 0; i < arr.length; i++) {
  // i是下标  a[i]是下标对应的值
  console.log(i + '-' + arr[i]);
}

// // 2、0-100所有偶数之和
// var res = 0
// for (var i = 0; i <= 100; i++) {
//   // 偶数的和
//   if (i % 2) {
//     res += i
//   }
// }
// // 循环结束再打印res的值
// console.log(res);

// // 3、0-100所有之和
// var res = 0
// for (var i = 0; i <= 100; i++) {
//   res += i
// }
// console.log(res);


// 第一趟 
// [11,2,9,12,10,32] 
// [2,11,9,12,10,32] 
// [2,9,11,12,10,32] 
// [2,9,11,12,10,32] 
// [2,9,11,10,12,32] 
// [2,9,11,10,12,32] 

// 第二趟
// [2,9,11,10,12,32] 
// [2,9,11,10,12,32] 
// [2,9,10,11,12,32] 
// [2,9,10,11,12,32]




// 3、冒泡排序（只针对number数组）

//1、比较相邻的两个元素，如果前一个比后一个大，则交换位置。
//2、比较完第一轮的时候，最后一个元素是最大的元素。
//3、这时候最后一个元素是最大的，所以最后一个元素就不需要参与比较大小。
function bubbleSort(arr) {
  var len = arr.length
  // 外层控制循环多少躺
  // 一趟最右边冒出一个最大值
  for (var i = 0; i < len - 1; i++) {
    // 
    for (var j = 0; j < len - 1 - i; j++) {
      // 相邻元素两两对比，元素交换，大的元素交换到后面
      if (arr[j] > arr[j + 1]) {
        var temp = arr[j]
        arr[j] = arr[j + 1]
        arr[j + 1] = temp
      }

    }

  }
  return arr
}
var numArr = [11, 2, 9, 12, 10, 32]
console.log(bubbleSort(numArr));